﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EstacionDePoder.Codigo;
using System.Drawing;
using BLLEP.Funcionalidad;
using BLLEP;

namespace EstacionDePoder.Cuentas
{
    public partial class ModificarPass : FormGenerico
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    EmailRecuperandose = null;

                    string cod = Request.QueryString["cod"];
                    string id = Request.QueryString["id"];
                    BLLUsuario bllUsuario = new BLLUsuario();
                    string descodificado = bllUsuario.Encriptador.Desencriptar(cod);

                    EP_Usuario usuario = bllUsuario.Traer(int.Parse(id));

                    BLLCodigoActivacion bllCodigoActivacion = new BLLCodigoActivacion();
                    EP_CodigoActivacion codigo = bllCodigoActivacion.TraerPorCodigo(descodificado);

                    TimeSpan diferencia = DateTime.Now - codigo.Fecha.Value;

                    if (diferencia.Days > 2)
                        throw new Exception("Vencido");

                    if (codigo.IdUsuario != usuario.IdUsuario)
                        throw new Exception("Boludeaste con el ID");

                    lblEmail.Text = EmailRecuperandose = usuario.Email;
                }
                catch (Exception ex)
                {
                    lblEmail.Text = "Hubo un error al intentar recuperar tu contraseña. Contactate con un administrador";
                    lblEmail.ForeColor = Color.Red;
                    txtRepetirContrasena.Enabled = txtContrasena.Enabled = false;
                    SetearVisibilidad(btnCambiar, false);
                }
            }
        }

        protected void btnCambiar_Click(object sender, EventArgs e)
        {
            try
            {
                BLLUsuario bllUsuario = new BLLUsuario();
                bllUsuario.CambiarContraseña(EmailRecuperandose, txtContrasena.Text);
                bllUsuario.GuardarCambios();
                lblResultado.Text = "La contraseña fue cambiada con éxito, ya podés usarla para ingresar al sistema.";
                lblResultado.ForeColor = Color.Green;
            }
            catch (BLLEPException ex)
            {
                lblResultado.Text = ex.Message;
                lblResultado.ForeColor = Color.Red;
            }
            catch (Exception ex)
            {
                lblResultado.Text = "Hubo un error al intentar cambiar la contraseña";
                lblResultado.ForeColor = Color.Red;
            }
        }
    }
}